package com.davcam.testproject;

import java.util.Vector;

public class Player implements Character {
	
	/*
	 * A Player is a special type of Character.
	 * Players are controlled by users.
	 * Players can equip items.
	 */
	
	private int playerID;		// Player's ID.
	private String playerName;	// Player's name.
	private int playerLevel;	// Player's current level.
	private int playerEXP;		// Player's current experience points (EXP).
	private int playerHP;		// Player's current health points (HP).
	private int playerMP;		// Player's current mana points (MP).
	private int playerMaxHP;	// Player's maximum health points.
	private int playerMaxMP;	// Player's maximum mana points.
	private int playerSTR;		// Player's strength (STR).
	private int playerDEX;		// Player's dexterity (DEX).
	private int playerINT;		// Player's intellect (INT).
	private int playerVIT;		// Player's vitality (VIT).
	private int playerLCK;		// Player's luck (LCK).
	private int playerRoom;		// Player's location (room_id).
	private Item playerSlotHead;	// Player's head slot.
	private Item playerSlotBody;	// Player's body slot.
	//private Item playerSlotHand;	// Player's hand slot.
	//private Item playerSlotFoot;	// Player's foot slot.
	private Item playerSlotWeapon;	// Player's weapon slot.
	//private Item playerSlotOff;	// Player's off-hand slot.
	private Item playerSlotAcc;	// Player's accessory slot.
	private Vector<Item> playerInventory;	// Player's inventory.
	
	public Player(int pNum) {
		playerID = pNum;
		
		// Initialize stats.
		playerName = "";
		playerLevel = 1;
		playerEXP = 0;
		playerHP = 10;
		playerMP = 10;
		playerSTR = 3;
		playerDEX = 3;
		playerINT = 3;
		playerVIT = 3;
		playerLCK = 3;
		playerRoom = 1;
		
		// Initialize equipment & inventory.
		playerSlotHead = null;
		playerSlotBody = null;
		//playerSlotHand = null;
		//playerSlotFoot = null;
		playerSlotWeapon = null;
		//playerSlotOff = null;
		playerSlotAcc = null;
		playerInventory = null;
	}
	
	// Player's ID.
	public int getID() { return playerID; }
	public void setID(int pNum) { playerID = pNum; }
	
	// Player's name.
	public String getName() { return playerName; }
	public void setName(String pName) { playerName = pName; }
	
	// Player's level.
	public int getLevel() { return playerLevel; }
	public void setLevel(int pNum) { playerLevel = pNum; }
	
	// Player's experience points.
	public int getEXP() { return playerEXP; }
	public void setEXP(int pNum) { playerEXP = pNum; }
	
	// Player's health points.
	public int getHP() { return playerHP; }
	public void setHP(int pHP) { playerHP = pHP; }
	public int getMaxHP() { return playerMaxHP; }
	public void setMaxHP(int pHP) { playerMaxHP = pHP; }
	
	// Player's mana points.
	public int getMP() { return playerMP; }
	public void setMP(int pMP) { playerMP = pMP; }
	public int getMaxMP() { return playerMaxMP; }
	public void setMaxMP(int pMP) { playerMaxMP = pMP; }
	
	// Player's stength.
	public int getSTR() { return playerSTR; }
	public void setSTR(int pSTR) { playerSTR = pSTR; }
	
	// Player's dexterity.
	public int getDEX() { return playerDEX; }
	public void setDEX(int pDEX) { playerDEX = pDEX; }
	
	// Player's intellect.
	public int getINT() { return playerINT; }
	public void setINT(int pINT) { playerINT = pINT; }
	
	// Player's vitality.
	public int getVIT() { return playerVIT; }
	public void setVIT(int pVIT) { playerVIT = pVIT; }
	
	// Player's luck.
	public int getLCK() { return playerLCK; }
	public void setLCK(int pLCK) { playerLCK = pLCK; }
	
	// Player's location.
	public int getRoom() { return playerRoom; }
	public void setRoom(int pRoom) { playerRoom = pRoom; }
	
	// Player's head slot equipment.
	public Item getSlotHead() { return playerSlotHead; }
	public void setSlotHead(Item pEquip) { playerSlotHead = pEquip; }
	
	// Player's body slot equipment.
	public Item getSlotBody() { return playerSlotBody; }
	public void setSlotBody(Item pEquip) { playerSlotBody = pEquip; }
	
	// Player's hand slot equipment.
	//public Item getSlotHand() { return playerSlotHand; }
	//public void setSlotHand(Item pEquip) { playerSlotHand = pEquip; }
	
	// Player's foot slot equipment.
	//public Item getSlotFoot() { return playerSlotFoot; }
	//public void setSlotFoot(Item pEquip) { playerSlotFoot = pEquip; }
	
	// Player's weapon slot equipment.
	public Item getSlotWeapon() { return playerSlotWeapon; }
	public void setSlotWeapon(Item pEquip) { playerSlotWeapon = pEquip; }
	
	// Player's off-hand slot equipment.
	//public Item getSlotOff() { return playerSlotOff; }
	//public void setSlotOff(Item pEquip) { playerSlotOff = pEquip; }
	
	// Player's accessory slot equipment.
	public Item getSlotAcc() { return playerSlotAcc; }
	public void setSlotAcc(Item pEquip) { playerSlotAcc = pEquip; }
	
	// Player's inventory.
	public Vector<Item> getInventory() { return playerInventory; }
}
